#ifndef FIXED_POINT_CAMERA_H_
#define FIXED_POINT_CAMERA_H_

#include "perspective_camera.h"
#include "model/matrix4x4.h"

#include <cassert>

class FixedPointCamera : public PerspectiveCamera{
	private:
		float xytheta;
		float yztheta;
	public:
		FixedPointCamera(Point at = Point(0,0,0),Point eye = Point(0.0f, 10.0f, 5.0f),Point up=Point(0,0,1),float fovUp=45,float aspect=1.0f,float dNear=1.0f,float dFar=10.0f);
		~FixedPointCamera();

		void applyModelViewTransformations();

		void moveTo(const Point& p);
		void move(float offset);
		void rotateUD(float theta);
		void rotateLR(float theta);
		void setFixedPoint(Point p);

		void updatePosition(const Point& position,const Point& direction,PathInfo* info);
};

#endif /* ROTATION_CAMERA_H_ */
